<?php
/*******************************************************************************

    FinalsClub.org is a platform for students and faculty to collaborate
    and share their knowledge with the world.

    Copyright (C) 2009  Andrew Magliozzi

    This file is a part of FinalsClub.org.

    FinalsClub.org is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

    To contact FinalsClub.org, send an email to info@finalsclub.org, or
    send mail to Finals Club, c/o Veritas Tutors, 1132 Massachusetts Avenue,
    Cambridge, MA 02138.

*******************************************************************************/
/**
 * LoginValidator
 */
class LoginValidator {
	
	public static function validate($validator, $values, $arguments) {
	    $login_name = $values['login_name'];
	    $password = md5($values['password']);
	    $user = UserPeer::retrieveByEmailOrUsernameAndPassword($login_name, $password);
		if($user) {
		  $values['user'] = $user;
			return $values;
		} else {
			throw new sfValidatorError($validator, 'invalid', 
			   array('values' => $values, 'invalid' => $validator->getOption('invalid')));
		}
	}
}
